home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-02-07 | 1.8 KB | 63 lines | [TEXT/MPS ] |
- %FOREIGN DEFINITION MODULE Timer;
-
- (*
- * Timer mit Auflösung von 1.3 µs
- *
- * Version 1 / O. Maquelin / 5-Jan-89
- *
- *
- * *** Nur für Macintosh II ****
- *
- *
- * Dieses Modul erlaubt Zeitmessungen mit einer Auflösung von 1.3 µs. Zur
- * Zeitbestimmung werden die globale Variable Ticks und der VIA Baustein,
- * der die dazugehörigen Interrupts generiert, gelesen. Die Ausführungszeit
- * der Prozeduren StartTimer und StopTimer beträgt etwa 35 µs (damit diese
- * Zeit möglichst wenig variiert, wird der Cache innerhalb dieser
- * Prozeduren ausgeschaltet).
- *
- * Die gemessenen Zeiten werden durch 64 Bit breite Zahlen dargestellt, und
- * geben die Anzahl Zyklen seit dem letzten Einschalten der Maschine an.
- * Die Variable MsPerClock enthält den genauen Umrechnungsfaktor von Zyklen
- * in Millisekunden (1.2766E-3).
- *
- * Die Ausführungszeit der Prozeduren StartTimer und StopTimer wird bei
- * der Zeitmessung automatisch berücksichtigt. Die Variable Compensation
- * enthält die Anzahl Zyklen, die für jeden Aufruf von der gemessenen
- * Zeitdifferenz abgezogen werden (27). Die Kompensation kann ausgeschaltet
- * werden, indem dieser Wert nullgesetzt wird.
- *)
-
-
- TYPE TimeRec = RECORD hi, lo: LONGCARD END;
-
-
- VAR MsPerClock: LONGREAL;
-
- Compensation: LONGCARD;
-
- totComp: TimeRec;
-
-
- PROCEDURE InitTimer %PASCAL (VAR t: TimeRec);
-
- (* Timer initialisieren (hi = lo = 0) *)
-
-
- PROCEDURE StartTimer %PASCAL (VAR t: TimeRec);
-
- (* Timer starten (Die momentane Zeit wird vom Inhalt des Timers subtrahiert) *)
-
-
- PROCEDURE StopTimer %PASCAL (VAR t: TimeRec);
-
- (* Timer stoppen (Die momentane Zeit wird zum Inhalt des Timers addiert) *)
-
-
- PROCEDURE MsValue %PASCAL (VAR t: TimeRec): LONGREAL;
-
- (* Wert des Timers in Millisekunden (Anzahl Zyklen * MsPerClock) *)
-
-
- END Timer.
-